package com.shangke.corejava.ch7;
public class Outer {
	private int id=11;
	private String name="outer1";
	public Outer(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	public void printOuter() {
		System.out.println(id+" in outer :"+name);
		//。内部类可以直接在外部类中使用，用于完成特定功能
		Inner inner=new Inner();
		inner.printInner();
	}
	//。内部类：在实际使用中经常被定义为私有的，只在内部类中使用，用于完成特定功能
	//用 private 将内部类私有化
	//public 公有的
	public class Inner{//私有化的话，TestOuter文件就不能引用当前的方法了
		private int id=11;
		private String name="outer2";
		public void printInner() {
			//。在内部类中，可以访问外部类的属性和方法
			//在外部类中，如果有变量
			int innerId=id;
			String innerName=name;
			System.out.println(innerId+" in outer : "+innerName);
			printOuter();
		}
	}
}
